This disclosure generally relates to the field of data processing, and, more particularly, to synchronizing producer consumer access to a shared resource in a cluster environment with multiple protocol nodes.
The classic producer-consumer problem involves a first process (“the producer”) producing items (i.e., writing data) that are placed into a fixed size buffer and a second process (“the consumer”) consuming items (i.e., reading) from the buffer. Since these processes work concurrently, solutions to the problem prevent the producer from producing an item when the buffer is full and prevent the consumer from trying to consume when the buffer is empty. If either case occurs, the other process may go into a wait state that creates noticeable delay.